package day11;

import java.util.ArrayList;
import java.util.List;

public class List_Demo01 {
    //ArrayList
    public static void m1(){
        //创建ArrayList实现类对象
        List<Object> arrayList=new ArrayList<Object>();//是有索引的,没有写Object，默认省略
        //增删改查
        arrayList.add("张三");//0
        arrayList.add(20);
        arrayList.add(true);
        arrayList.add(1.75);//索引3
        arrayList.add(2,"郑州市");
        System.out.println(arrayList);//[张三, 20, 郑州市, true, 1.75] toString()是重写的
        /*
         public String toString() {    AbstractCollection 中的底层toString方法
        Iterator<E> it = iterator();
        if (! it.hasNext())
            return "[]";

        StringBuilder sb = new StringBuilder();
        sb.append('[');
        for (;;) {
            E e = it.next();
            sb.append(e == this ? "(this Collection)" : e);
            if (! it.hasNext())
                return sb.append(']').toString();
            sb.append(',').append(' ');
        }
    }
         */
        List arrayList2=new ArrayList();//是有索引的
        arrayList2.add("李四");//0
        arrayList2.add(18);
        arrayList2.add(true);
        arrayList2.add(1.75);//索引3
        arrayList2.add(2,"安阳市");
        arrayList.addAll(arrayList2);
        System.out.println(arrayList);

        //删除 remove delete
        //remove(int index) 删除指定位置的元素值，返回E-->Element 元素 T---->Type K V
        //泛型---->泛----->不确定 型-->类型
        //泛型：在定义是是一种不确定的类型，在使用的时候建议明确此时使用的数据类型
        //泛型：数据类型作为参数进行一种参数传递，可以把错误或者异常提升到编译阶段来进行语法校验
        //创建一个List列表容器
        List<String> stringList=new ArrayList<>();
        stringList.add("zhangsan");
        stringList.add("王五");
        stringList.add("王六");
        stringList.add("王⑦");
        System.out.println(stringList);

        //E remove(int index)
        String remove = stringList.remove(1);
        System.out.println(remove);
        System.out.println(stringList);//zhangsan
        boolean b = stringList.remove("zhangsan");
        System.out.println(stringList);

        //改 set replace   E set(int index,E element)  用指定元素替换列表中指定位置的元素（可选操作）
         stringList.set(0,"汪云飞");
        System.out.println(stringList);

        //查
        String s = stringList.get(0);

        System.out.println("查找值为"+s);

    }
    public static void main(String[] args) {
        m1();
    }
}
